package com.ucode.model.cgms;

import com.ucode.model.cgms.enums.CgmsCompanionReportAuditStateEnum;
import com.ucode.tool.base.BaseTenantMode;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "陪玩俱乐部社区系统 - 陪玩线下订单报备")
@Data
@EqualsAndHashCode
@ToString(callSuper = true)
public class CgmsCompanionOfflineOrderReport extends BaseTenantMode<Long, Long> {
    /**
     * 商品ID
     */
    private Long productId;
    /**
     * 商品标题
     */
    private String title;
    /**
     * 商品子标题
     */
    private String subTitle;
    /**
     * 商品列表图
     */
    private String picUrl;
    /**
     * 市场价,单位:元
     */
    private BigDecimal marketPrice;
    /**
     * 现价,单位:元
     */
    private BigDecimal price;
    /**
     * 商品抽成配置 1-固定金额 2-按比例
     */
    private Integer commissionMode;
    /**
     * 商品抽成配置模式对应配置参数值，按比例时为百分比，按单量时为金额
     */
    private BigDecimal commissionPrice;
    /**
     * 商品返点配置 1-固定金额 2-按比例
     */
    private Integer rebateMode;
    /**
     * 商品返点配置模式对应配置参数值,按比例时为百分比，按单量时为金额
     */
    private BigDecimal rebatePrice;
    /**
     * 数量
     */
    private Integer quantity;
    /**
     * 最终付款金额（总），单位：元
     */
    private BigDecimal payPrice;
    /**
     * 预约人名称
     */
    private String scheduledName;
    /**
     * 预约联系方式
     */
    private String scheduledContact;
    /**
     * 服务开始时间
     */
    private LocalDateTime serviceStartTime;
    /**
     * 服务结束时间（完工时间）
     */
    private LocalDateTime serviceEndTime;
    /**
     * 服务人员
     */
    private Long serviceUserId;
    /**
     * 服务取证图片
     */
    private List<String> evidencePics;
    /**
     * 服务取证备注
     */
    private String evidenceRemark;

    //审核相关
    /**
     * 报备审核状态
     * 参考枚举 {@link CgmsCompanionReportAuditStateEnum}
     */
    private Integer auditStatuz;
    /**
     * 报备审核处理人
     */
    private Long processorId;
    /**
     * 报备审核处理人类型
     */
    private Integer processorType;
    /**
     * 报备审核处理时间
     */
    private LocalDateTime processTime;
    /**
     * 报备审核处理备注
     */
    private String processRemark;
}
